Excel文件是常见的存储数据的方式之一。使用pandas包提供的函数,可以快速将Excel文件中的数据导入到内存,并以DataFrame数据结构保存。[大谦Excel,dqexcel点com]
读取全部数据
【问题描述】
利用Python pandas包提供的函数,通过编程读取指定路径中文件的全部数据。
【示例2-1】
要导入的Excel文件的完整路径为“D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx”。该文件打开后如图2-1所示,是很多商品的电商销售数据。现在要求用pandas全部导入该数据。
图2-1 单品电商数据
编写下面的代码:
code.python
import pandas as pd
# 读取Excel文件并指定引擎为openpyxl
df = pd.read_excel(r"D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx", engine="openpyxl")
# 输出数据的形状、行数和列数
print("数据的形状为:", df.shape)
print("数据的行数为:", len(df))
print("数据的列数为:", len(df.columns))
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出导入数据的形状、行数和列数。现在数据已经导入到df里面,可以进行后续的整理和分析了。
code.python
>>> == RESTART: D:/Samples/1.py =
数据的形状为: (327, 26)
数据的行数为: 327
数据的列数为: 26
【知识点扩展】
pandas使用read_excel函数导入Excel数据,函数常用参数的说明如表2-1所示。使用这些参数,可以对导入过程和导入内容进行更多的控制。
表2-1 read_excel函数的主要参数
| 参 数 | 说 明 |
|---|---|
| io | Excel文件的路径和名称 |
| sheet_name | 读取数据的工作表的名称,可以指定名称,也可以指定索引号,不指定时读取第1个工作表 |
| header | 指定用哪行数据作为索引行,如果是多层索引,用多行的行号组成列表进行指定 |
| names | 用列表指定列的列索引标签 |
| index_col | 指定用哪列数据作为索引列,如果是多层索引,用多列的列号或名称组成列表进行指定 |
| usecols | 如果只需要导入原始数据中的部分列数据,使用该参数用列表进行指定 |
| dtype | 用字典指定特定列的数据类型,如{"A":np.float64 }指定A列的数据类型为64位浮点型 |
| nrows | 指定需要读取的行数 |
| skiprows | 指定读入时忽略前面多少行 |
| skip_footer | 指定读入时忽略后面多少行 |
| engine | 执行数据导入的引擎,如"xlrd", "openpyxl"等 |
读取文件中的部分数据
【问题描述】
导入Excel数据时,只导入文件中的部分数据。比如,只导入其中的m列n行数据。
【示例2-2】
使用示例2-1的数据,使用pandas导入数据时,只导入前6行前6列数据。
- 编写下面的代码:
code.python
import pandas as pd
# 读取Excel文件
file_path = 'D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx'
sheet_name = 'Sheet1' # 工作表名
df = pd.read_excel(file_path, sheet_name=sheet_name, engine='openpyxl', nrows=6, usecols=range(0, 6))
# nrows参数表示读取前n行数据,usecols参数表示读取前6列数据
print(df)
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出导入的数据。注意,默认时Excel文件中的第一行数据是作为索引行导入的,不算在导入的行数中。
code.python
>>> == RESTART: D:/Samples/1.py =
商品id 周数据 日期 商品访客数 商品微详情访客数 商品浏览量
0 1 15 2021-04-08 355 1 965
1 2 15 2021-04-07 439 2 1076
2 3 15 2021-04-06 425 3 970
3 4 15 2021-04-05 272 4 821
4 5 15 2021-04-04 304 2 802
5 6 14 2021-04-03 268 3 748